SQL INSERT v procedure -- sorry, pred chvilou som to omylom poslal ako odpoved na unicode

Otázka od: Ivan Kozak

2. 11. 2004 10:01

         ako odpoved na unicode
Mozno je tato otazka jednoducha, mozno je to len nedostatok skusenosti s
SQL, ale potrebujem to vyriesit, takze ak niekto mi viete poradit, napiste
prosim.
Vsetko popisujem pre Interbase 7.1 a D7.


Chcel som, aby sa po nahrati noveho zaznamu v tabulke T1 automaticky
vygeneroval zaznam do tabulky T2, a to na urovni SQL (asi podobne, ako keby
som mal triggri after insert na T1 v nom zadam SQL prikaz insert do T2).
Zial primo z triggeru som nemohol generovat, pretoze do T2 potrebujem i
dalsie udaje, nenachadzajuce sa priamo v T1.

Naivnym riesenim bolo vytvorit priceduru, do ktorej cez parametre poslem co
treba a bude obsahovat len jediny prikaz: INSERT do tabulky T1. Z programu
by som tuto proceduru potom volal cez komponentu TIBStoredProcedure.

Zial absolutne to nefunguje.

Pokial takto vytvorenu SQL proceduru spustim z databazy (t.j. mimo program
v D7), tak sa nevytvori nova veta, zato sa vsak generator tabulky T2 (kde
generujem identifikatro zaznamu) posunie o 2 (namiesto o 1 ako by to malo
byt spravne)., t.j. vyzera to ako keby ten insert prebehol dvakrat.

A ak tu SQL proceduru spustim z programu (pomocou TIBStoredProcedure), tak
sa ani nevytvori veta, ani neposunie generator tabulky.

Mam matne podozrenie, ze problem by mohol suvisiet s transakciou, ale
neviem, ako ju dostat do hry (na urovni SQL).